<?php

/**
 * 二维码生成处理类
 */
namespace Api\Controller;
use Think\Controller;

class QrcodeController extends Controller {

    public function index() {
        $value = I('text'); //获取生成二维码的地址
    $matrixPointSize = I('size',4,'intval'); //获取生成二维码的大小，默认4
        if(strpos($value, "http")===0){
            $value = urldecode($value);
        }
        vendor("phpqrcode.phpqrcode");
        $errorCorrectionLevel = 'L';//容错级别
        $filepath ='./data/upload/qrcode/';
        $QR = $filepath . 'qrcode/' . md5($value) . '.png';
        //生成二维码图片
        \QRcode::png($value, $QR, $errorCorrectionLevel, $matrixPointSize, 2, true);
        $logo = 'logo.png';//准备好的logo图片

        if ($logo !== FALSE) {
            $QR = imagecreatefromstring(file_get_contents($QR));
            $logo = imagecreatefromstring(file_get_contents($logo));
            $QR_width = imagesx($QR);//二维码图片宽度
            $QR_height = imagesy($QR);//二维码图片高度
            $logo_width = imagesx($logo);//logo图片宽度
            $logo_height = imagesy($logo);//logo图片高度
            $logo_qr_width = $QR_width / 5;
            $scale = $logo_width/$logo_qr_width;
            $logo_qr_height = $logo_height/$scale;
            $from_width = ($QR_width - $logo_qr_width) / 2;
            //重新组合图片并调整大小
            imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,
            $logo_qr_height, $logo_width, $logo_height);
        }
        header("Content-type: image/png");
        // 输出图像
        imagepng($QR);
        imagedestroy($QR);
    }
}